<?php
/**
 * Sbm Abstract gateway
 * 
 * @author Alexey Strelnikoff <zog@zoggi.net>
 */

namespace Sbm;

/**
 * Абстракный класс для работы с SMS шлюзами
 */
abstract class AbstractGateway
{

	/**
	 * Отправляет сообщение $message на список телефонов $phones
	 * и возвращает ответ
	 * 
	 * @param array $phones Список телефонов
	 * @param string $message Текст сообщения
	 * @return string
	 */
	abstract function send( $phones, $message );

	/**
	 * Возвращает статус пакета сообщений
	 * 
	 * @param string $packetId Номер пакета сообщений
	 * @return string
	 */
	abstract function check( $packetId );

	/**
	 * Отправляет массив параметров на $url и возвращает ответ
	 * 
	 * @param string $url URL, на которую нужно отправить данные
	 * @param array $params Массив данных для отправки
	 * @param string $method Метод отправки GET или POST
	 * @return string 
	 */
	protected function sendHTTP( $url, $params, $method = 'GET' )
	{
		switch ($method)
		{
			case 'GET':
				$request = sprintf("%s?%s", $url, http_build_query($params));
				// отправляем запрос и получаем ответ
				$response = file_get_contents($request);
				return $response;
				break;
			case 'POST':
			default:
				break;
		}
	}

}
